#ifndef EVENTWRAPPER_H_
#define EVENTWRAPPER_H_

#include "SDL2/SDL.h"
#include "Event.h"

class EventWrapper
{
public:
    EventWrapper();
    virtual ~EventWrapper();

    static void push(Event* internalEvent);
    static void push(void* header, void* data);
    static void pushQuit();
    static Events getEvents();

private:
    static Event* getNextEvent(const SDL_Event& event);
    static Event* createUserEvent(const SDL_Event& event);
    static void clear(const SDL_Event& event);
    static Event* throwEventError(int code);

    enum Type
    {
        NETWORK,
        INTERNAL
    };
};

#endif
